草庐IT

java - 01 扭结背包

全部标签

java - 使用 SHARE 属性在 Windows 中内存映射文件(因此文件不会被锁定以防止删除)

有什么方法可以将文件的内容映射到Windows中的内存中而不锁定文件(特别是,这样可以在仍然mmap的情况下删除文件)?JavaNIO在Windows中以这样一种方式库mmap文件,即当堆中有任何非垃圾收集的MappedByteBuffer引用时,无法删除映射文件。JDK团队声称这是Windows的限制,但仅当文件被mmap时,而不是当它们作为常规文件打开时:https://mail.openjdk.java.net/pipermail/nio-dev/2019-January/005698.html(显然,如果一个文件在mmap时被删除,那么mmap区域究竟应该发生什么在Window

java - 在 NTFS 上用 Java 创建稀疏文件

这个命令应该创建一个稀疏文件:channel=Files.newByteChannel(path,EnumSet.of(CREATE,WRITE,SPARSE));但是,它只是创建一个常规(非稀疏)文件。我可以在命令行上使用fsutil手动将其转换为稀疏文件,但如何让Java运行时执行此操作?我在Windows10(NTFS)上使用Java11。 最佳答案 显然,创建稀疏文件仅适用于OpenOptionCREATE_NEW(替换任何现有文件),但不适用于CREATE(仅当文件不存在时才创建文件)。channel=Files.newB

java - 测试覆盖率在 IntelliJ IDEA 中不起作用

在运行带有覆盖率的应用程序时,未显示覆盖率。我发现我的日志与工作机器日志的区别是coverage-agent.jar没有记录在我的控制台日志中。有人知道解决方法吗?我正在运行IntellijIDEAUltimate2019.2.1和JDK版本1.8.221。我尝试了所有选项,例如卸载IntelliJ,也尝试了社区版,降级到较低版本,将JDK版本更改为更高的9和更低的1.8.211,检查了插件,还删除了IntellijSettings文件夹,但没有一个有效。我联系了IntelliJ支持团队,他们还建议删除IntelliJ设置文件夹,但这没有用。这是在覆盖模式下运行时的日志。这里我们看不到

java - 无法从Java程序中调用外部可执行文件令人困惑

好吧,我遇到了一个使bejeebus迷惑不解的错误。我正在寻找有关可以进行调查的想法,因为现在,我什么都没有。它是这样的:我有一个独立的Java应用程序,有时需要调整它运行的计算机(WinXP计算机)的Line-In量。它通过调用一对可以获取和设置各种组件卷的外部可执行文件(用VB6*编写)来实现。(他们可以处理Line-In,Mic,Wave,CD和主音量控制。)现场有数百台设备,在我公司提供和控制的硬件(戴尔计算机)上运行。至少有几十个客户端正在使用此功能,并且除一个实异常(exception),它运行完美。对于这台制造麻烦的机器,它根本不起作用。当应用程序运行时,我会看着音量滑块

java - Windows 上的 Tomcat 将文件写入 Windows\Temp

我在Windows上引发多个Tomcat服务,有时会无缘无故地收到ClassNotFoundException。经过一些调查,Tomcat似乎将类文件存储在Windows临时目录中,并且在同时引发多个Tomcat实例时变得困惑。有人遇到过这个问题吗?我们如何配置每个Tomcat将其临时文件写入自己唯一的目录,从而避免冲突?注意-Tomcat在WindowsServer2008上作为Windows服务运行。 最佳答案 尝试使用-Djava.io.tmpdir=/my/temporary/directory运行Tomcat。Javaus

java - 阻止窗口关闭

我每次都需要在Windows关闭过程之前执行一些代码。所以,我想在一段时间内阻止Windows关闭过程。我如何从Java或C++Builder执行此操作?谢谢。 最佳答案 使用logofforshutdownscript启动一个exe?这可以通过组策略设置。当然,我希望你有充分的理由(比如我的公司build)这样做。如评论中所述,请问您要做什么? 关于java-阻止窗口关闭,我们在StackOverflow上找到一个类似的问题: https://stackov

java - 当我从命令行启动 java 应用程序时,我可以防止数字签名警告吗?

有什么方法可以避免在命令行运行Java应用程序时出现“无法验证应用程序的数字签名”的警告信息?我正在寻找一个命令行解决方案,它允许在持续集成服务器上启动这样的应用程序,因此我需要一个不需要手动干预的解决方案。此外,我不希望对任何应用程序禁用此警告,因为这可能存在安全风险。不确定是否有帮助,但我知道签名的“名称”、“发布者”和“来自”字段的值。请确定,我不是在询问如何签署此申请。更新1我想解决方案是使用keytool从命令行导入证书,但由于某种原因它确实无法正确导入它,因为在此之后它没有出现在控制面板小程序中,并且应用程序仍然需要它。keytool-importcert-filemy.c

java - UnsatisfiedLinkError "Access is denied"即使完全控制

我从java.lang.ClassLoader$NativeLibrary.load()得到一个java.lang.UnsatisfiedLinkError消息“访问被拒绝”。正在通过UNC路径从网络共享加载DLL。它以前在其他网络共享上没有错误地工作(系统管理员告诉我这个特定的共享更“原生Windows”),所以我的第一直觉是使用cacls为每个人和运行Java代码的特定用户。当我在Windows资源管理器中查看DLL属性时,它显然设置了这些权限,但它仍然失败并出现此错误。有什么想法吗? 最佳答案 一种可能是此dll反过来试图加载

windows - Cygwin 上的 tdbloader : java. lang.NoClassDefFoundError

我正在尝试在Cygwin(安装了最新Java的Windows7)上使用tbdloader。这是tbdloader文档:http://jenawiki.hpl.hp.com/wiki/TDB/Commands这是我用来在我的机器上调用tdbloader的包装器脚本:#!/bin/bash#CygwinscripttoimportlargeNTfilesinTDB.CD/cygdrive/c/mypath/TDB-0.8.10echo"TDBfound.Settingpath"exportTDBROOT=/cygdrive/c/mypath/TDB-0.8.10exportPATH=$PA

java - WebSphere Application Server 7.0 在连接到 MQ 时忽略 Windows userId

有没有人遇到过WAS在连接到WebsphereMQ资源时不使用Windows用户名的问题?我们的开发者盒子过去都没有遇到过这个问题,他们已经能够将用户名发送给MQ进行授权。但是我们有一台新的开发人员机器,它似乎没有发送用户名,因此无法连接到MQ。我们尝试使用DefaultPrincipalMapping为QCF指定J2C身份验证别名,但这没有用。解决方案:发现问题是服务器作为Windows服务安装和运行。当我们创建一个由用户运行而不是作为服务运行的新服务器配置文件时,它在连接到MQ时使用Windows用户名。 最佳答案 我怀疑问题实